package Data_Structure;

import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
import java.util.*;

/**
 * @className: Main
 * @author: 芃
 * @description: 集合框架及其背后的数据结构-初识
 * @date: 2023/8/21 14:57
 */
//泛型：一种语法，晦涩难懂的一种语法
//泛型的意义：在对存放元素时对元素的类型进行限制和检查
public class Main {
    //顶层接口iterable->Collection
    //Collection接口的三个子接口-》List、Queue、Set
    //List（线性结构）、Queue（队列）、Set（元素不可重复）
    //其为iterable接口的实现类，则可以使用foreach循环遍历集合
    //map接口是一个单独的接口，即非iterable接口的子接口

    //Map接口的简单使用
    public static void main(String[] args) {
        Map<String,String> map = new HashMap<>();
        map.put("你好","朱意芃");
        map.put("您好","小豆");
        String ret = map.get("你好");
        System.out.println(ret);
        boolean flg = map.containsKey("您好");
        System.out.println(flg);
        Set<Map.Entry<String,String>> entrySet = map.entrySet();
        for (Map.Entry<String,String> entry: entrySet) {
            System.out.println(entry.getKey() + " " + entry.getValue());
        }
    }
    //Collection接口的简单使用
    //实际场景很少使用Collection创建集合对象
    public static void main1(String[] args) {
        Collection<Integer> collection = new ArrayList<>();
        collection.add(1);
        collection.add(2);
        collection.add(3);
        collection.add(4);
        collection.add(5);
        System.out.println(collection.size());
        System.out.println(collection.contains(5));
        collection.remove(3);
        System.out.println(collection.contains(3));
        Object[] objects = collection.toArray();
        System.out.println(objects.length);
        collection.clear();
        System.out.println(collection.size());
    }
}
